knitr::opts_chunk$set(fig.align="center") 
library(rstanarm)
library(tidyverse)
library(tidybayes)
library(modelr) 
library(ggplot2)
library(magrittr)  
library(emmeans)
library(bayesplot)
library(brms)
library(gganimate)

theme_set(theme_light())
task_list <- c("3. Prediction", "4. Exploration")
seed = 12

Number of Interacted Variable Sets

Read in and format data

interacted_var_sets_data <- read.csv("split_by_participant_groups/num_of_interacted_variable_set.csv")
interacted_var_sets_data <- interacted_var_sets_data %>%
  mutate(
    dataset = as.factor(dataset),
    oracle = as.factor(oracle),
    search = as.factor(search),
    task = as.factor(task),
    participant_group = as.factor(participant_group)
  )

Train model

prior_mean = 35.24
prior_sd = 25.33

stanvars <- stanvar(prior_mean, name='prior_mean') + stanvar(prior_sd, name='prior_sd')
model_interacted_var_sets <- brm(
    formula = num_interacted_variable_set ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id),
    prior = prior(normal(prior_mean, prior_sd), class = Intercept),
    chains = 2,
    cores = 2,
    iter = 2500,
    warmup = 1000,
    data = interacted_var_sets_data,
    stanvars=stanvars,
    seed = seed,
    file = "model_interacted_var_sets_group"
  )

Plot

plot(model_interacted_var_sets)

Summary

summary(model_interacted_var_sets)
## Warning: There were 2 divergent transitions after warmup. Increasing adapt_delta
## above 0.8 may help. See http://mc-stan.org/misc/warnings.html#divergent-
## transitions-after-warmup
##  Family: gaussian 
##   Links: mu = identity; sigma = identity 
## Formula: num_interacted_variable_set ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id) 
##    Data: interacted_var_sets_data (Number of observations: 132) 
## Samples: 2 chains, each with iter = 2500; warmup = 1000; thin = 1;
##          total post-warmup samples = 3000
## 
## Group-Level Effects: 
## ~participant_id (Number of levels: 66) 
##                                                      Estimate Est.Error
## sd(Intercept)                                            3.58      2.30
## sd(oracledziban)                                         3.85      2.56
## sd(searchdfs)                                            4.96      2.89
## sd(datasetmovies)                                        4.74      2.68
## sd(participant_groupstudent)                             2.60      1.94
## sd(oracledziban:searchdfs)                               4.68      3.44
## cor(Intercept,oracledziban)                             -0.05      0.37
## cor(Intercept,searchdfs)                                -0.02      0.37
## cor(oracledziban,searchdfs)                             -0.02      0.39
## cor(Intercept,datasetmovies)                            -0.04      0.38
## cor(oracledziban,datasetmovies)                          0.03      0.38
## cor(searchdfs,datasetmovies)                            -0.17      0.39
## cor(Intercept,participant_groupstudent)                 -0.14      0.38
## cor(oracledziban,participant_groupstudent)              -0.04      0.37
## cor(searchdfs,participant_groupstudent)                 -0.09      0.38
## cor(datasetmovies,participant_groupstudent)             -0.00      0.38
## cor(Intercept,oracledziban:searchdfs)                   -0.01      0.38
## cor(oracledziban,oracledziban:searchdfs)                -0.05      0.38
## cor(searchdfs,oracledziban:searchdfs)                   -0.04      0.37
## cor(datasetmovies,oracledziban:searchdfs)               -0.08      0.38
## cor(participant_groupstudent,oracledziban:searchdfs)     0.00      0.38
##                                                      l-95% CI u-95% CI Rhat
## sd(Intercept)                                            0.13     8.28 1.03
## sd(oracledziban)                                         0.21     9.39 1.01
## sd(searchdfs)                                            0.29    10.76 1.01
## sd(datasetmovies)                                        0.31    10.23 1.01
## sd(participant_groupstudent)                             0.14     7.25 1.01
## sd(oracledziban:searchdfs)                               0.22    12.64 1.00
## cor(Intercept,oracledziban)                             -0.70     0.65 1.00
## cor(Intercept,searchdfs)                                -0.70     0.66 1.00
## cor(oracledziban,searchdfs)                             -0.73     0.72 1.00
## cor(Intercept,datasetmovies)                            -0.73     0.67 1.00
## cor(oracledziban,datasetmovies)                         -0.69     0.72 1.00
## cor(searchdfs,datasetmovies)                            -0.82     0.63 1.00
## cor(Intercept,participant_groupstudent)                 -0.80     0.61 1.00
## cor(oracledziban,participant_groupstudent)              -0.74     0.67 1.00
## cor(searchdfs,participant_groupstudent)                 -0.77     0.68 1.00
## cor(datasetmovies,participant_groupstudent)             -0.71     0.69 1.00
## cor(Intercept,oracledziban:searchdfs)                   -0.71     0.70 1.00
## cor(oracledziban,oracledziban:searchdfs)                -0.73     0.69 1.00
## cor(searchdfs,oracledziban:searchdfs)                   -0.72     0.68 1.00
## cor(datasetmovies,oracledziban:searchdfs)               -0.76     0.67 1.00
## cor(participant_groupstudent,oracledziban:searchdfs)    -0.71     0.71 1.00
##                                                      Bulk_ESS Tail_ESS
## sd(Intercept)                                             262      434
## sd(oracledziban)                                          526     1002
## sd(searchdfs)                                             338      733
## sd(datasetmovies)                                         338      675
## sd(participant_groupstudent)                              671      658
## sd(oracledziban:searchdfs)                                627     1064
## cor(Intercept,oracledziban)                              1239     1778
## cor(Intercept,searchdfs)                                 1048     1467
## cor(oracledziban,searchdfs)                               968     1719
## cor(Intercept,datasetmovies)                              890     1360
## cor(oracledziban,datasetmovies)                           750     1223
## cor(searchdfs,datasetmovies)                              647     1316
## cor(Intercept,participant_groupstudent)                  1448     1727
## cor(oracledziban,participant_groupstudent)               2213     1932
## cor(searchdfs,participant_groupstudent)                  1790     1825
## cor(datasetmovies,participant_groupstudent)              1820     1925
## cor(Intercept,oracledziban:searchdfs)                    1773     1841
## cor(oracledziban,oracledziban:searchdfs)                 1582     1716
## cor(searchdfs,oracledziban:searchdfs)                    1946     2241
## cor(datasetmovies,oracledziban:searchdfs)                1485     2030
## cor(participant_groupstudent,oracledziban:searchdfs)     1765     2158
## 
## Population-Level Effects: 
##                          Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## Intercept                   20.91      2.74    15.46    26.30 1.00     1446
## oracledziban                 0.06      3.01    -5.95     6.02 1.00     1074
## searchdfs                   -1.11      3.00    -7.21     4.56 1.00      963
## datasetmovies                3.70      2.36    -0.92     8.25 1.00     1454
## task4.Exploration            1.85      1.38    -0.91     4.49 1.00     3110
## participant_groupstudent    -0.69      2.32    -5.16     3.76 1.00     1807
## oracledziban:searchdfs       1.60      4.73    -7.49    11.07 1.00     1005
##                          Tail_ESS
## Intercept                    1444
## oracledziban                 1345
## searchdfs                    1075
## datasetmovies                1785
## task4.Exploration            2067
## participant_groupstudent     2037
## oracledziban:searchdfs       1157
## 
## Family Specific Parameters: 
##       Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma     8.14      0.69     6.91     9.58 1.00     1274     2157
## 
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
pairs(
    model_interacted_var_sets,
    pars = c(
      "b_Intercept",
      "b_datasetmovies",
      "b_oracledziban",
      "b_searchdfs",
      "b_task4.Exploration",
      "b_participant_groupstudent"
    ),
    fixed = TRUE
  )

draw_data_interacted_var_sets <- interacted_var_sets_data %>%
  add_fitted_draws(model_interacted_var_sets, seed = seed, re_formula = NA)
draw_data_interacted_var_sets$condition <- paste(draw_data_interacted_var_sets$oracle, draw_data_interacted_var_sets$search)
plot_interacted_var_sets <- draw_data_interacted_var_sets %>% ggplot(aes(x = dataset, y = .value, fill = participant_group, alpha = 0.5)) +
      stat_eye(.width = c(.95, .5)) +
      theme_minimal() +
      facet_grid(task ~ condition)
    
plot_interacted_var_sets

ggsave(
      file = paste("interacted_var_sets_split_group.png", sep = ""),
      plot = plot_interacted_var_sets,
      path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
    )
## Saving 7 x 5 in image
fit_info_interacted_var_sets <-
      draw_data_interacted_var_sets %>% group_by(search, oracle, task, participant_group) %>% mean_qi(.value, .width = c(.95, .5))

fit_info_interacted_var_sets
## # A tibble: 32 x 10
## # Groups:   search, oracle, task [8]
##    search oracle task  participant_gro… .value .lower .upper .width .point
##    <fct>  <fct>  <fct> <fct>             <dbl>  <dbl>  <dbl>  <dbl> <chr> 
##  1 bfs    compa… 3. P… professional       22.8   16.4   29.4   0.95 mean  
##  2 bfs    compa… 3. P… student            22.1   16.1   28.6   0.95 mean  
##  3 bfs    compa… 4. E… professional       24.6   18.3   31.3   0.95 mean  
##  4 bfs    compa… 4. E… student            23.9   18.0   30.6   0.95 mean  
##  5 bfs    dziban 3. P… professional       23.1   16.3   29.7   0.95 mean  
##  6 bfs    dziban 3. P… student            22.1   15.9   28.8   0.95 mean  
##  7 bfs    dziban 4. E… professional       24.9   18.1   31.4   0.95 mean  
##  8 bfs    dziban 4. E… student            24.0   17.7   30.6   0.95 mean  
##  9 dfs    compa… 3. P… professional       21.9   15.1   28.4   0.95 mean  
## 10 dfs    compa… 3. P… student            21.0   14.7   27.2   0.95 mean  
## # … with 22 more rows, and 1 more variable: .interval <chr>
write.csv(
      fit_info_interacted_var_sets,  "../plot_data/posterior_draws/num_interacted_variable_set/interacted_var_sets.csv",
      row.names = FALSE
    )

Differences between factors

predictive_data_interacted_var_sets <- interacted_var_sets_data %>%
    add_predicted_draws(model_interacted_var_sets, seed = seed, re_formula = NA)

Difference in groups

diff_in_group_prediction <- predictive_data_interacted_var_sets %>%
    group_by(search, task, dataset, participant_group, .draw) %>%
    summarize(value = weighted.mean(.prediction)) %>%
    compare_levels(value, by = participant_group) %>%
    rename(diff = value)
## `summarise()` regrouping output by 'search', 'task', 'dataset', 'participant_group' (override with `.groups` argument)
diff_in_group_prediction_plot <- diff_in_group_prediction %>%
    ggplot(aes(x = diff, y = task)) +
    xlab(
      paste0(
        "Difference in interacted_var_sets (",
        diff_in_group_prediction[1, 'participant_group'],
        ")"
      )
    ) +
    ylab("Task") +
    stat_halfeye(.width = c(.95, .5)) +
    geom_vline(xintercept = 0, linetype = "longdash") +
    theme_minimal() + scale_y_discrete(limits = rev(levels(diff_in_group_prediction$task)))

diff_in_group_prediction_plot

ggsave(
      file = "group_differences.png",
      plot = diff_in_group_prediction_plot,
      path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
    )
## Saving 7 x 5 in image
diff_in_group_prediction_plot_split_by_dataset <- diff_in_group_prediction_plot + aes(fill = dataset, alpha = 0.5)

diff_in_group_prediction_plot_split_by_dataset

ggsave(
      file = "group_differences_split_by_dataset.png",
      plot = diff_in_group_prediction_plot_split_by_dataset,
      path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
    )
## Saving 7 x 5 in image

Number of Interacted Visual Designs

Read in and format data

interacted_visual_design_data <- read.csv("split_by_participant_groups/num_of_interacted_visual_design.csv")
interacted_visual_design_data <- interacted_visual_design_data %>%
  mutate(
    dataset = as.factor(dataset),
    oracle = as.factor(oracle),
    search = as.factor(search),
    task = as.factor(task),
    participant_group = as.factor(participant_group)
  )

Train model

prior_mean = 35.24
prior_sd = 25.33

stanvars <- stanvar(prior_mean, name='prior_mean') + stanvar(prior_sd, name='prior_sd')
model_interacted_visual_design <- brm(
    formula = num_interacted_visual_design ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id),
    prior = prior(normal(prior_mean, prior_sd), class = Intercept),
    chains = 2,
    cores = 2,
    iter = 2500,
    warmup = 1000,
    data = interacted_visual_design_data,
    stanvars=stanvars,
    seed = seed,
    file = "model_interacted_visual_design_group"
  )
## Compiling Stan program...
## Trying to compile a simple C file
## Running /Library/Frameworks/R.framework/Resources/bin/R CMD SHLIB foo.c
## clang -mmacosx-version-min=10.13 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rcpp/include/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/unsupported"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/BH/include" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/src/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppParallel/include/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/rstan/include" -DEIGEN_NO_DEBUG  -DBOOST_DISABLE_ASSERTS  -DBOOST_PENDING_INTEGER_LOG2_HPP  -DSTAN_THREADS  -DBOOST_NO_AUTO_PTR  -include '/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp'  -D_REENTRANT -DRCPP_PARALLEL_USE_TBB=1   -I/usr/local/include   -fPIC  -Wall -g -O2  -c foo.c -o foo.o
## In file included from <built-in>:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp:13:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Dense:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Core:88:
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:613:1: error: unknown type name 'namespace'
## namespace Eigen {
## ^
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:613:16: error: expected ';' after top level declarator
## namespace Eigen {
##                ^
##                ;
## In file included from <built-in>:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp:13:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Dense:1:
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Core:96:10: fatal error: 'complex' file not found
## #include <complex>
##          ^~~~~~~~~
## 3 errors generated.
## make: *** [foo.o] Error 1
## Start sampling

Plot

plot(model_interacted_visual_design)

Summary

summary(model_interacted_visual_design)
##  Family: gaussian 
##   Links: mu = identity; sigma = identity 
## Formula: num_interacted_visual_design ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id) 
##    Data: interacted_visual_design_data (Number of observations: 132) 
## Samples: 2 chains, each with iter = 2500; warmup = 1000; thin = 1;
##          total post-warmup samples = 3000
## 
## Group-Level Effects: 
## ~participant_id (Number of levels: 66) 
##                                                      Estimate Est.Error
## sd(Intercept)                                            3.74      2.37
## sd(oracledziban)                                         5.27      3.32
## sd(searchdfs)                                            5.17      3.06
## sd(datasetmovies)                                        5.38      3.19
## sd(participant_groupstudent)                             2.77      2.20
## sd(oracledziban:searchdfs)                               5.76      3.98
## cor(Intercept,oracledziban)                             -0.01      0.38
## cor(Intercept,searchdfs)                                -0.01      0.37
## cor(oracledziban,searchdfs)                             -0.02      0.37
## cor(Intercept,datasetmovies)                            -0.06      0.38
## cor(oracledziban,datasetmovies)                          0.02      0.36
## cor(searchdfs,datasetmovies)                            -0.20      0.39
## cor(Intercept,participant_groupstudent)                 -0.16      0.39
## cor(oracledziban,participant_groupstudent)              -0.05      0.37
## cor(searchdfs,participant_groupstudent)                 -0.08      0.38
## cor(datasetmovies,participant_groupstudent)             -0.03      0.38
## cor(Intercept,oracledziban:searchdfs)                   -0.00      0.38
## cor(oracledziban,oracledziban:searchdfs)                -0.05      0.38
## cor(searchdfs,oracledziban:searchdfs)                   -0.02      0.38
## cor(datasetmovies,oracledziban:searchdfs)               -0.09      0.38
## cor(participant_groupstudent,oracledziban:searchdfs)     0.00      0.38
##                                                      l-95% CI u-95% CI Rhat
## sd(Intercept)                                            0.15     8.70 1.00
## sd(oracledziban)                                         0.20    12.14 1.00
## sd(searchdfs)                                            0.32    11.55 1.00
## sd(datasetmovies)                                        0.23    11.76 1.00
## sd(participant_groupstudent)                             0.08     8.23 1.00
## sd(oracledziban:searchdfs)                               0.31    14.86 1.00
## cor(Intercept,oracledziban)                             -0.72     0.69 1.00
## cor(Intercept,searchdfs)                                -0.70     0.71 1.00
## cor(oracledziban,searchdfs)                             -0.69     0.69 1.00
## cor(Intercept,datasetmovies)                            -0.73     0.68 1.00
## cor(oracledziban,datasetmovies)                         -0.67     0.69 1.00
## cor(searchdfs,datasetmovies)                            -0.84     0.62 1.00
## cor(Intercept,participant_groupstudent)                 -0.81     0.62 1.00
## cor(oracledziban,participant_groupstudent)              -0.74     0.65 1.00
## cor(searchdfs,participant_groupstudent)                 -0.75     0.67 1.00
## cor(datasetmovies,participant_groupstudent)             -0.73     0.69 1.00
## cor(Intercept,oracledziban:searchdfs)                   -0.72     0.72 1.00
## cor(oracledziban,oracledziban:searchdfs)                -0.74     0.68 1.00
## cor(searchdfs,oracledziban:searchdfs)                   -0.71     0.69 1.00
## cor(datasetmovies,oracledziban:searchdfs)               -0.77     0.66 1.00
## cor(participant_groupstudent,oracledziban:searchdfs)    -0.71     0.72 1.00
##                                                      Bulk_ESS Tail_ESS
## sd(Intercept)                                             791     1528
## sd(oracledziban)                                          593      964
## sd(searchdfs)                                             737     1164
## sd(datasetmovies)                                         583     1372
## sd(participant_groupstudent)                             1189     1215
## sd(oracledziban:searchdfs)                                999     1543
## cor(Intercept,oracledziban)                              1688     1917
## cor(Intercept,searchdfs)                                 1731     2026
## cor(oracledziban,searchdfs)                              1868     2384
## cor(Intercept,datasetmovies)                             1735     2048
## cor(oracledziban,datasetmovies)                          1899     2103
## cor(searchdfs,datasetmovies)                             1006     2139
## cor(Intercept,participant_groupstudent)                  2691     2221
## cor(oracledziban,participant_groupstudent)               3479     2387
## cor(searchdfs,participant_groupstudent)                  2747     2245
## cor(datasetmovies,participant_groupstudent)              2909     2595
## cor(Intercept,oracledziban:searchdfs)                    3237     2669
## cor(oracledziban,oracledziban:searchdfs)                 2853     2317
## cor(searchdfs,oracledziban:searchdfs)                    2442     2235
## cor(datasetmovies,oracledziban:searchdfs)                1821     2344
## cor(participant_groupstudent,oracledziban:searchdfs)     2422     2607
## 
## Population-Level Effects: 
##                          Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## Intercept                   22.02      2.82    16.48    27.51 1.00     4113
## oracledziban                 0.64      3.30    -5.74     7.25 1.00     2594
## searchdfs                   -2.16      3.06    -8.15     4.00 1.00     3344
## datasetmovies                4.02      2.55    -0.95     9.09 1.00     3154
## task4.Exploration            1.72      1.46    -1.22     4.53 1.00     6582
## participant_groupstudent    -0.87      2.43    -5.55     3.78 1.00     3906
## oracledziban:searchdfs       2.28      5.02    -7.57    12.03 1.00     2737
##                          Tail_ESS
## Intercept                    2507
## oracledziban                 2235
## searchdfs                    2450
## datasetmovies                2453
## task4.Exploration            2084
## participant_groupstudent     2422
## oracledziban:searchdfs       2368
## 
## Family Specific Parameters: 
##       Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma     8.44      0.71     7.19     9.99 1.00     2057     2204
## 
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
pairs(
    model_interacted_visual_design,
    pars = c(
      "b_Intercept",
      "b_datasetmovies",
      "b_oracledziban",
      "b_searchdfs",
      "b_task4.Exploration",
      "b_participant_groupstudent"
    ),
    fixed = TRUE
  )

draw_data_interacted_visual_design <- interacted_visual_design_data %>%
  add_fitted_draws(model_interacted_visual_design, seed = seed, re_formula = NA)
draw_data_interacted_visual_design$condition <- paste(draw_data_interacted_visual_design$oracle, draw_data_interacted_visual_design$search)
plot_interacted_visual_design <- draw_data_interacted_visual_design %>% ggplot(aes(x = dataset, y = .value, fill = participant_group, alpha = 0.5)) +
      stat_eye(.width = c(.95, .5)) +
      theme_minimal() +
      facet_grid(task ~ condition)
    
plot_interacted_visual_design

ggsave(
      file = paste("interacted_visual_design_split_group.png", sep = ""),
      plot = plot_interacted_visual_design,
      path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
    )
## Saving 7 x 5 in image
fit_info_interacted_visual_design <-
      draw_data_interacted_visual_design %>% group_by(search, oracle, task, participant_group) %>% mean_qi(.value, .width = c(.95, .5))

fit_info_interacted_visual_design
## # A tibble: 32 x 10
## # Groups:   search, oracle, task [8]
##    search oracle task  participant_gro… .value .lower .upper .width .point
##    <fct>  <fct>  <fct> <fct>             <dbl>  <dbl>  <dbl>  <dbl> <chr> 
##  1 bfs    compa… 3. P… professional       24.0   17.4   31.1   0.95 mean  
##  2 bfs    compa… 3. P… student            23.2   16.8   29.9   0.95 mean  
##  3 bfs    compa… 4. E… professional       25.7   19.0   33.1   0.95 mean  
##  4 bfs    compa… 4. E… student            24.9   18.6   31.7   0.95 mean  
##  5 bfs    dziban 3. P… professional       25.0   17.7   32.4   0.95 mean  
##  6 bfs    dziban 3. P… student            23.8   16.7   31.2   0.95 mean  
##  7 bfs    dziban 4. E… professional       26.7   19.3   34.0   0.95 mean  
##  8 bfs    dziban 4. E… student            25.5   18.4   32.8   0.95 mean  
##  9 dfs    compa… 3. P… professional       22.2   14.7   29.3   0.95 mean  
## 10 dfs    compa… 3. P… student            21.0   14.1   27.8   0.95 mean  
## # … with 22 more rows, and 1 more variable: .interval <chr>
write.csv(
      fit_info_interacted_visual_design,  "../plot_data/posterior_draws/num_interacted_variable_set/interacted_visual_design.csv",
      row.names = FALSE
    )

Differences between factors

predictive_data_interacted_visual_design <- interacted_visual_design_data %>%
    add_predicted_draws(model_interacted_visual_design, seed = seed, re_formula = NA)

Difference in groups

diff_in_group_prediction <- predictive_data_interacted_visual_design %>%
    group_by(search, task, dataset, participant_group, .draw) %>%
    summarize(value = weighted.mean(.prediction)) %>%
    compare_levels(value, by = participant_group) %>%
    rename(diff = value)
## `summarise()` regrouping output by 'search', 'task', 'dataset', 'participant_group' (override with `.groups` argument)
diff_in_group_prediction_plot <- diff_in_group_prediction %>%
    ggplot(aes(x = diff, y = task)) +
    xlab(
      paste0(
        "Difference in interacted_visual_design (",
        diff_in_group_prediction[1, 'participant_group'],
        ")"
      )
    ) +
    ylab("Task") +
    stat_halfeye(.width = c(.95, .5)) +
    geom_vline(xintercept = 0, linetype = "longdash") +
    theme_minimal() + scale_y_discrete(limits = rev(levels(diff_in_group_prediction$task)))

diff_in_group_prediction_plot

ggsave(
      file = "group_differences.png",
      plot = diff_in_group_prediction_plot,
      path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
    )
## Saving 7 x 5 in image
diff_in_group_prediction_plot_split_by_dataset <- diff_in_group_prediction_plot + aes(fill = dataset, alpha = 0.5)

diff_in_group_prediction_plot_split_by_dataset

ggsave(
      file = "group_differences_split_by_dataset.png",
      plot = diff_in_group_prediction_plot_split_by_dataset,
      path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
    )
## Saving 7 x 5 in image

Number of Exposed Variable Sets

Read in and format data

exposed_variable_set_data <- read.csv("split_by_participant_groups/num_of_exposed_variable_set.csv")
exposed_variable_set_data <- exposed_variable_set_data %>%
  mutate(
    dataset = as.factor(dataset),
    oracle = as.factor(oracle),
    search = as.factor(search),
    task = as.factor(task),
    participant_group = as.factor(participant_group)
  )

Train model

prior_mean = 35.24
prior_sd = 25.33

stanvars <- stanvar(prior_mean, name='prior_mean') + stanvar(prior_sd, name='prior_sd')
model_exposed_variable_set <- brm(
    formula = num_exposed_variable_set ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id),
    prior = prior(normal(prior_mean, prior_sd), class = Intercept),
    chains = 2,
    cores = 2,
    iter = 2500,
    warmup = 1000,
    data = exposed_variable_set_data,
    stanvars=stanvars,
    seed = seed,
    file = "model_exposed_variable_set_group"
  )
## Compiling Stan program...
## Trying to compile a simple C file
## Running /Library/Frameworks/R.framework/Resources/bin/R CMD SHLIB foo.c
## clang -mmacosx-version-min=10.13 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rcpp/include/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/unsupported"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/BH/include" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/src/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppParallel/include/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/rstan/include" -DEIGEN_NO_DEBUG  -DBOOST_DISABLE_ASSERTS  -DBOOST_PENDING_INTEGER_LOG2_HPP  -DSTAN_THREADS  -DBOOST_NO_AUTO_PTR  -include '/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp'  -D_REENTRANT -DRCPP_PARALLEL_USE_TBB=1   -I/usr/local/include   -fPIC  -Wall -g -O2  -c foo.c -o foo.o
## In file included from <built-in>:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp:13:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Dense:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Core:88:
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:613:1: error: unknown type name 'namespace'
## namespace Eigen {
## ^
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:613:16: error: expected ';' after top level declarator
## namespace Eigen {
##                ^
##                ;
## In file included from <built-in>:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp:13:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Dense:1:
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Core:96:10: fatal error: 'complex' file not found
## #include <complex>
##          ^~~~~~~~~
## 3 errors generated.
## make: *** [foo.o] Error 1
## Start sampling

Plot

plot(model_exposed_variable_set)

Summary

summary(model_exposed_variable_set)
##  Family: gaussian 
##   Links: mu = identity; sigma = identity 
## Formula: num_exposed_variable_set ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id) 
##    Data: exposed_variable_set_data (Number of observations: 132) 
## Samples: 2 chains, each with iter = 2500; warmup = 1000; thin = 1;
##          total post-warmup samples = 3000
## 
## Group-Level Effects: 
## ~participant_id (Number of levels: 66) 
##                                                      Estimate Est.Error
## sd(Intercept)                                            4.53      3.38
## sd(oracledziban)                                        12.60      7.18
## sd(searchdfs)                                            5.42      4.20
## sd(datasetmovies)                                        7.65      5.29
## sd(participant_groupstudent)                             6.06      4.49
## sd(oracledziban:searchdfs)                              15.15      9.51
## cor(Intercept,oracledziban)                             -0.02      0.38
## cor(Intercept,searchdfs)                                -0.08      0.37
## cor(oracledziban,searchdfs)                              0.02      0.38
## cor(Intercept,datasetmovies)                            -0.04      0.38
## cor(oracledziban,datasetmovies)                          0.03      0.37
## cor(searchdfs,datasetmovies)                            -0.08      0.37
## cor(Intercept,participant_groupstudent)                 -0.06      0.38
## cor(oracledziban,participant_groupstudent)               0.03      0.37
## cor(searchdfs,participant_groupstudent)                 -0.07      0.38
## cor(datasetmovies,participant_groupstudent)              0.05      0.37
## cor(Intercept,oracledziban:searchdfs)                   -0.01      0.38
## cor(oracledziban,oracledziban:searchdfs)                 0.01      0.36
## cor(searchdfs,oracledziban:searchdfs)                   -0.01      0.38
## cor(datasetmovies,oracledziban:searchdfs)               -0.00      0.37
## cor(participant_groupstudent,oracledziban:searchdfs)     0.02      0.37
##                                                      l-95% CI u-95% CI Rhat
## sd(Intercept)                                            0.24    12.76 1.00
## sd(oracledziban)                                         0.77    26.87 1.00
## sd(searchdfs)                                            0.17    15.53 1.00
## sd(datasetmovies)                                        0.37    19.22 1.00
## sd(participant_groupstudent)                             0.17    16.41 1.00
## sd(oracledziban:searchdfs)                               0.62    35.34 1.00
## cor(Intercept,oracledziban)                             -0.76     0.72 1.00
## cor(Intercept,searchdfs)                                -0.75     0.64 1.00
## cor(oracledziban,searchdfs)                             -0.71     0.70 1.00
## cor(Intercept,datasetmovies)                            -0.74     0.70 1.00
## cor(oracledziban,datasetmovies)                         -0.70     0.72 1.00
## cor(searchdfs,datasetmovies)                            -0.76     0.66 1.00
## cor(Intercept,participant_groupstudent)                 -0.73     0.68 1.00
## cor(oracledziban,participant_groupstudent)              -0.69     0.70 1.00
## cor(searchdfs,participant_groupstudent)                 -0.77     0.67 1.00
## cor(datasetmovies,participant_groupstudent)             -0.67     0.74 1.00
## cor(Intercept,oracledziban:searchdfs)                   -0.72     0.70 1.00
## cor(oracledziban,oracledziban:searchdfs)                -0.68     0.69 1.00
## cor(searchdfs,oracledziban:searchdfs)                   -0.72     0.69 1.00
## cor(datasetmovies,oracledziban:searchdfs)               -0.69     0.69 1.00
## cor(participant_groupstudent,oracledziban:searchdfs)    -0.68     0.71 1.00
##                                                      Bulk_ESS Tail_ESS
## sd(Intercept)                                            1358     2070
## sd(oracledziban)                                          536      731
## sd(searchdfs)                                            1423     1517
## sd(datasetmovies)                                         965     1506
## sd(participant_groupstudent)                              818      914
## sd(oracledziban:searchdfs)                                778      933
## cor(Intercept,oracledziban)                              1016     1192
## cor(Intercept,searchdfs)                                 2954     2116
## cor(oracledziban,searchdfs)                              2790     2304
## cor(Intercept,datasetmovies)                             2643     2088
## cor(oracledziban,datasetmovies)                          1870     1740
## cor(searchdfs,datasetmovies)                             1517     2149
## cor(Intercept,participant_groupstudent)                  2856     2033
## cor(oracledziban,participant_groupstudent)               2623     2082
## cor(searchdfs,participant_groupstudent)                  2140     2344
## cor(datasetmovies,participant_groupstudent)              1961     2340
## cor(Intercept,oracledziban:searchdfs)                    1769     1846
## cor(oracledziban,oracledziban:searchdfs)                 1985     2336
## cor(searchdfs,oracledziban:searchdfs)                    1697     2220
## cor(datasetmovies,oracledziban:searchdfs)                1828     2392
## cor(participant_groupstudent,oracledziban:searchdfs)     2046     2588
## 
## Population-Level Effects: 
##                          Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## Intercept                   62.80      6.60    49.44    75.69 1.00     3192
## oracledziban                -0.60      7.34   -14.99    14.08 1.00     1988
## searchdfs                  -25.53      6.50   -38.36   -12.69 1.00     2761
## datasetmovies               10.32      5.32    -0.24    20.48 1.00     3018
## task4.Exploration           13.09      3.92     5.29    21.01 1.00     4126
## participant_groupstudent     2.43      5.49    -8.61    12.80 1.00     2839
## oracledziban:searchdfs      22.71     11.43    -0.56    44.79 1.00     1852
##                          Tail_ESS
## Intercept                    2594
## oracledziban                 2132
## searchdfs                    2390
## datasetmovies                2382
## task4.Exploration            2422
## participant_groupstudent     2351
## oracledziban:searchdfs       1994
## 
## Family Specific Parameters: 
##       Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma    22.47      1.74    19.36    26.10 1.00     2405     2558
## 
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
pairs(
    model_exposed_variable_set,
    pars = c(
      "b_Intercept",
      "b_datasetmovies",
      "b_oracledziban",
      "b_searchdfs",
      "b_task4.Exploration",
      "b_participant_groupstudent"
    ),
    fixed = TRUE
  )

draw_data_exposed_variable_set <- exposed_variable_set_data %>%
  add_fitted_draws(model_exposed_variable_set, seed = seed, re_formula = NA)
draw_data_exposed_variable_set$condition <- paste(draw_data_exposed_variable_set$oracle, draw_data_exposed_variable_set$search)
plot_exposed_variable_set <- draw_data_exposed_variable_set %>% ggplot(aes(x = dataset, y = .value, fill = participant_group, alpha = 0.5)) +
      stat_eye(.width = c(.95, .5)) +
      theme_minimal() +
      facet_grid(task ~ condition)
    
plot_exposed_variable_set

ggsave(
      file = paste("exposed_variable_set_split_group.png", sep = ""),
      plot = plot_exposed_variable_set,
      path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
    )
## Saving 7 x 5 in image
fit_info_exposed_variable_set <-
      draw_data_exposed_variable_set %>% group_by(search, oracle, task, participant_group) %>% mean_qi(.value, .width = c(.95, .5))

fit_info_exposed_variable_set
## # A tibble: 32 x 10
## # Groups:   search, oracle, task [8]
##    search oracle task  participant_gro… .value .lower .upper .width .point
##    <fct>  <fct>  <fct> <fct>             <dbl>  <dbl>  <dbl>  <dbl> <chr> 
##  1 bfs    compa… 3. P… professional       68.0   52.1   84.0   0.95 mean  
##  2 bfs    compa… 3. P… student            70.4   55.7   85.8   0.95 mean  
##  3 bfs    compa… 4. E… professional       81.1   65.5   96.5   0.95 mean  
##  4 bfs    compa… 4. E… student            83.5   68.4   99.0   0.95 mean  
##  5 bfs    dziban 3. P… professional       68.1   50.7   84.5   0.95 mean  
##  6 bfs    dziban 3. P… student            69.8   53.5   86.8   0.95 mean  
##  7 bfs    dziban 4. E… professional       81.2   63.9   98.0   0.95 mean  
##  8 bfs    dziban 4. E… student            82.9   66.2  100.    0.95 mean  
##  9 dfs    compa… 3. P… professional       43.2   26.8   58.4   0.95 mean  
## 10 dfs    compa… 3. P… student            44.9   30.1   59.9   0.95 mean  
## # … with 22 more rows, and 1 more variable: .interval <chr>
write.csv(
      fit_info_exposed_variable_set,  "../plot_data/posterior_draws/num_interacted_variable_set/exposed_variable_set.csv",
      row.names = FALSE
    )

Differences between factors

predictive_data_exposed_variable_set <- exposed_variable_set_data %>%
    add_predicted_draws(model_exposed_variable_set, seed = seed, re_formula = NA)

Difference in groups

diff_in_group_prediction <- predictive_data_exposed_variable_set %>%
    group_by(search, task, dataset, participant_group, .draw) %>%
    summarize(value = weighted.mean(.prediction)) %>%
    compare_levels(value, by = participant_group) %>%
    rename(diff = value)
## `summarise()` regrouping output by 'search', 'task', 'dataset', 'participant_group' (override with `.groups` argument)
diff_in_group_prediction_plot <- diff_in_group_prediction %>%
    ggplot(aes(x = diff, y = task)) +
    xlab(
      paste0(
        "Difference in exposed_variable_set (",
        diff_in_group_prediction[1, 'participant_group'],
        ")"
      )
    ) +
    ylab("Task") +
    stat_halfeye(.width = c(.95, .5)) +
    geom_vline(xintercept = 0, linetype = "longdash") +
    theme_minimal() + scale_y_discrete(limits = rev(levels(diff_in_group_prediction$task)))

diff_in_group_prediction_plot

ggsave(
      file = "group_differences.png",
      plot = diff_in_group_prediction_plot,
      path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
    )
## Saving 7 x 5 in image
diff_in_group_prediction_plot_split_by_dataset <- diff_in_group_prediction_plot + aes(fill = dataset, alpha = 0.5)

diff_in_group_prediction_plot_split_by_dataset

ggsave(
      file = "group_differences_split_by_dataset.png",
      plot = diff_in_group_prediction_plot_split_by_dataset,
      path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
    )
## Saving 7 x 5 in image

Number of Exposed Visual Designs

Read in and format data

exposed_visual_design_data <- read.csv("split_by_participant_groups/num_of_exposed_visual_design.csv")
exposed_visual_design_data <- exposed_visual_design_data %>%
  mutate(
    dataset = as.factor(dataset),
    oracle = as.factor(oracle),
    search = as.factor(search),
    task = as.factor(task),
    participant_group = as.factor(participant_group)
  )

Train model

prior_mean = 35.24
prior_sd = 25.33

stanvars <- stanvar(prior_mean, name='prior_mean') + stanvar(prior_sd, name='prior_sd')
model_exposed_visual_design <- brm(
    formula = num_exposed_visual_design ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id),
    prior = prior(normal(prior_mean, prior_sd), class = Intercept),
    chains = 2,
    cores = 2,
    iter = 2500,
    warmup = 1000,
    data = exposed_visual_design_data,
    stanvars=stanvars,
    seed = seed,
    file = "model_exposed_visual_design_group"
  )
## Compiling Stan program...
## Trying to compile a simple C file
## Running /Library/Frameworks/R.framework/Resources/bin/R CMD SHLIB foo.c
## clang -mmacosx-version-min=10.13 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rcpp/include/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/unsupported"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/BH/include" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/src/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppParallel/include/"  -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/rstan/include" -DEIGEN_NO_DEBUG  -DBOOST_DISABLE_ASSERTS  -DBOOST_PENDING_INTEGER_LOG2_HPP  -DSTAN_THREADS  -DBOOST_NO_AUTO_PTR  -include '/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp'  -D_REENTRANT -DRCPP_PARALLEL_USE_TBB=1   -I/usr/local/include   -fPIC  -Wall -g -O2  -c foo.c -o foo.o
## In file included from <built-in>:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp:13:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Dense:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Core:88:
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:613:1: error: unknown type name 'namespace'
## namespace Eigen {
## ^
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:613:16: error: expected ';' after top level declarator
## namespace Eigen {
##                ^
##                ;
## In file included from <built-in>:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp:13:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Dense:1:
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Core:96:10: fatal error: 'complex' file not found
## #include <complex>
##          ^~~~~~~~~
## 3 errors generated.
## make: *** [foo.o] Error 1
## Start sampling

Plot

plot(model_exposed_visual_design)

Summary

summary(model_exposed_visual_design)
##  Family: gaussian 
##   Links: mu = identity; sigma = identity 
## Formula: num_exposed_visual_design ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id) 
##    Data: exposed_visual_design_data (Number of observations: 132) 
## Samples: 2 chains, each with iter = 2500; warmup = 1000; thin = 1;
##          total post-warmup samples = 3000
## 
## Group-Level Effects: 
## ~participant_id (Number of levels: 66) 
##                                                      Estimate Est.Error
## sd(Intercept)                                            5.16      3.89
## sd(oracledziban)                                        16.78      8.98
## sd(searchdfs)                                            6.14      4.85
## sd(datasetmovies)                                        7.76      5.83
## sd(participant_groupstudent)                             6.57      4.76
## sd(oracledziban:searchdfs)                              23.39     13.18
## cor(Intercept,oracledziban)                              0.00      0.38
## cor(Intercept,searchdfs)                                -0.09      0.39
## cor(oracledziban,searchdfs)                              0.01      0.37
## cor(Intercept,datasetmovies)                            -0.04      0.38
## cor(oracledziban,datasetmovies)                          0.01      0.37
## cor(searchdfs,datasetmovies)                            -0.08      0.39
## cor(Intercept,participant_groupstudent)                 -0.05      0.38
## cor(oracledziban,participant_groupstudent)               0.03      0.36
## cor(searchdfs,participant_groupstudent)                 -0.06      0.38
## cor(datasetmovies,participant_groupstudent)              0.02      0.38
## cor(Intercept,oracledziban:searchdfs)                    0.01      0.39
## cor(oracledziban,oracledziban:searchdfs)                -0.00      0.38
## cor(searchdfs,oracledziban:searchdfs)                    0.00      0.38
## cor(datasetmovies,oracledziban:searchdfs)               -0.05      0.38
## cor(participant_groupstudent,oracledziban:searchdfs)     0.01      0.37
##                                                      l-95% CI u-95% CI Rhat
## sd(Intercept)                                            0.23    14.46 1.00
## sd(oracledziban)                                         1.14    34.48 1.01
## sd(searchdfs)                                            0.21    18.13 1.00
## sd(datasetmovies)                                        0.35    21.62 1.00
## sd(participant_groupstudent)                             0.29    17.48 1.00
## sd(oracledziban:searchdfs)                               1.75    49.57 1.01
## cor(Intercept,oracledziban)                             -0.69     0.72 1.00
## cor(Intercept,searchdfs)                                -0.76     0.67 1.00
## cor(oracledziban,searchdfs)                             -0.67     0.71 1.00
## cor(Intercept,datasetmovies)                            -0.73     0.68 1.00
## cor(oracledziban,datasetmovies)                         -0.68     0.69 1.00
## cor(searchdfs,datasetmovies)                            -0.75     0.70 1.00
## cor(Intercept,participant_groupstudent)                 -0.73     0.67 1.00
## cor(oracledziban,participant_groupstudent)              -0.67     0.71 1.00
## cor(searchdfs,participant_groupstudent)                 -0.74     0.65 1.00
## cor(datasetmovies,participant_groupstudent)             -0.70     0.72 1.00
## cor(Intercept,oracledziban:searchdfs)                   -0.72     0.71 1.00
## cor(oracledziban,oracledziban:searchdfs)                -0.69     0.72 1.00
## cor(searchdfs,oracledziban:searchdfs)                   -0.73     0.72 1.00
## cor(datasetmovies,oracledziban:searchdfs)               -0.72     0.67 1.00
## cor(participant_groupstudent,oracledziban:searchdfs)    -0.70     0.71 1.00
##                                                      Bulk_ESS Tail_ESS
## sd(Intercept)                                            1191     1319
## sd(oracledziban)                                          593     1144
## sd(searchdfs)                                            1472     1793
## sd(datasetmovies)                                         973     1403
## sd(participant_groupstudent)                             1114     1499
## sd(oracledziban:searchdfs)                                610      846
## cor(Intercept,oracledziban)                              1194     1487
## cor(Intercept,searchdfs)                                 3449     2409
## cor(oracledziban,searchdfs)                              3611     2211
## cor(Intercept,datasetmovies)                             2718     2352
## cor(oracledziban,datasetmovies)                          3000     2553
## cor(searchdfs,datasetmovies)                             2108     1848
## cor(Intercept,participant_groupstudent)                  2628     1996
## cor(oracledziban,participant_groupstudent)               2856     2097
## cor(searchdfs,participant_groupstudent)                  2421     2784
## cor(datasetmovies,participant_groupstudent)              2561     2259
## cor(Intercept,oracledziban:searchdfs)                    1582     1870
## cor(oracledziban,oracledziban:searchdfs)                 1464     2028
## cor(searchdfs,oracledziban:searchdfs)                    1781     1823
## cor(datasetmovies,oracledziban:searchdfs)                1733     2465
## cor(participant_groupstudent,oracledziban:searchdfs)     1899     2477
## 
## Population-Level Effects: 
##                          Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## Intercept                   66.46      7.53    51.71    81.57 1.00     2880
## oracledziban                 6.15      9.01   -11.59    22.93 1.00     1920
## searchdfs                  -30.75      7.48   -45.01   -16.30 1.00     2641
## datasetmovies               10.55      6.29    -1.81    23.32 1.00     2556
## task4.Exploration           15.60      4.55     6.84    24.19 1.00     4993
## participant_groupstudent     2.27      6.20   -10.36    14.41 1.00     3542
## oracledziban:searchdfs      31.35     14.31     3.04    59.02 1.00     1841
##                          Tail_ESS
## Intercept                    1989
## oracledziban                 2071
## searchdfs                    2359
## datasetmovies                2404
## task4.Exploration            2036
## participant_groupstudent     2538
## oracledziban:searchdfs       1447
## 
## Family Specific Parameters: 
##       Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma    25.85      1.97    22.38    30.09 1.00     2467     2695
## 
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
pairs(
    model_exposed_visual_design,
    pars = c(
      "b_Intercept",
      "b_datasetmovies",
      "b_oracledziban",
      "b_searchdfs",
      "b_task4.Exploration",
      "b_participant_groupstudent"
    ),
    fixed = TRUE
  )

draw_data_exposed_visual_design <- exposed_visual_design_data %>%
  add_fitted_draws(model_exposed_visual_design, seed = seed, re_formula = NA)
draw_data_exposed_visual_design$condition <- paste(draw_data_exposed_visual_design$oracle, draw_data_exposed_visual_design$search)
plot_exposed_visual_design <- draw_data_exposed_visual_design %>% ggplot(aes(x = dataset, y = .value, fill = participant_group, alpha = 0.5)) +
      stat_eye(.width = c(.95, .5)) +
      theme_minimal() +
      facet_grid(task ~ condition)
    
plot_exposed_visual_design

ggsave(
      file = paste("exposed_visual_design_split_group.png", sep = ""),
      plot = plot_exposed_visual_design,
      path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
    )
## Saving 7 x 5 in image
fit_info_exposed_visual_design <-
      draw_data_exposed_visual_design %>% group_by(search, oracle, task, participant_group) %>% mean_qi(.value, .width = c(.95, .5))

fit_info_exposed_visual_design
## # A tibble: 32 x 10
## # Groups:   search, oracle, task [8]
##    search oracle task  participant_gro… .value .lower .upper .width .point
##    <fct>  <fct>  <fct> <fct>             <dbl>  <dbl>  <dbl>  <dbl> <chr> 
##  1 bfs    compa… 3. P… professional       71.7   54.1   90.1   0.95 mean  
##  2 bfs    compa… 3. P… student            74.0   57.3   91.6   0.95 mean  
##  3 bfs    compa… 4. E… professional       87.3   69.8  106.    0.95 mean  
##  4 bfs    compa… 4. E… student            89.6   73.4  107.    0.95 mean  
##  5 bfs    dziban 3. P… professional       78.6   58.6   98.3   0.95 mean  
##  6 bfs    dziban 3. P… student            80.2   60.3   99.5   0.95 mean  
##  7 bfs    dziban 4. E… professional       94.2   74.1  114.    0.95 mean  
##  8 bfs    dziban 4. E… student            95.8   76.4  115.    0.95 mean  
##  9 dfs    compa… 3. P… professional       41.7   23.4   59.0   0.95 mean  
## 10 dfs    compa… 3. P… student            43.3   25.9   60.6   0.95 mean  
## # … with 22 more rows, and 1 more variable: .interval <chr>
write.csv(
      fit_info_exposed_visual_design,  "../plot_data/posterior_draws/num_interacted_variable_set/exposed_visual_design.csv",
      row.names = FALSE
    )

Differences between factors

predictive_data_exposed_visual_design <- exposed_visual_design_data %>%
    add_predicted_draws(model_exposed_visual_design, seed = seed, re_formula = NA)

Difference in groups

diff_in_group_prediction <- predictive_data_exposed_visual_design %>%
    group_by(search, task, dataset, participant_group, .draw) %>%
    summarize(value = weighted.mean(.prediction)) %>%
    compare_levels(value, by = participant_group) %>%
    rename(diff = value)
## `summarise()` regrouping output by 'search', 'task', 'dataset', 'participant_group' (override with `.groups` argument)
diff_in_group_prediction_plot <- diff_in_group_prediction %>%
    ggplot(aes(x = diff, y = task)) +
    xlab(
      paste0(
        "Difference in exposed_visual_design (",
        diff_in_group_prediction[1, 'participant_group'],
        ")"
      )
    ) +
    ylab("Task") +
    stat_halfeye(.width = c(.95, .5)) +
    geom_vline(xintercept = 0, linetype = "longdash") +
    theme_minimal() + scale_y_discrete(limits = rev(levels(diff_in_group_prediction$task)))

diff_in_group_prediction_plot

ggsave(
      file = "group_differences.png",
      plot = diff_in_group_prediction_plot,
      path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
    )
## Saving 7 x 5 in image
diff_in_group_prediction_plot_split_by_dataset <- diff_in_group_prediction_plot + aes(fill = dataset, alpha = 0.5)

diff_in_group_prediction_plot_split_by_dataset

ggsave(
      file = "group_differences_split_by_dataset.png",
      plot = diff_in_group_prediction_plot_split_by_dataset,
      path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
    )
## Saving 7 x 5 in image